package com.developer.web.content.privatepage.partidos;

import java.util.List;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;

import com.developer.core.page.PrivatePage;
import com.developer.core.utils.ObjectToXML;
import com.developer.logic.modulo.autenticacion.AutenticacionServicio;
import com.developer.logic.modulo.grupos.GrupoServicio;
import com.developer.logic.modulo.grupos.dto.Fase;
import com.developer.logic.modulo.grupos.dto.Grupo;
import com.developer.logic.modulo.partidos.PartidoServicio;
import com.developer.logic.modulo.partidos.dto.Partido;

public class PageRegistrarInfoPartido extends PrivatePage{
	
	public StringBuffer executeAction(HttpServletRequest request) {
		
		StringBuffer xmlPage = new StringBuffer();
		ObjectToXML objectToXML = ObjectToXML.getInstance();
		
	
		//Fases
		GrupoServicio grupoServicio = GrupoServicio.getInstance();
		List<Fase> fases = grupoServicio.getFases();
		xmlPage.append(objectToXML.getXML(fases));
		
		Map<String, Object> parameters = getParameters(request, true);
		Fase faseSeleccionado = (Fase)getParameterToObject("Fase", Fase.class, null, parameters);
		Grupo grupoSeleccionado = (Grupo)getParameterToObject("Grupo", Grupo.class, null, parameters);
		
		
		if(faseSeleccionado!=null && faseSeleccionado.getFase()!=null){
			
			xmlPage.append("<faseSeleccionada>");
			
				for (Fase fase : fases) {
					if(fase.getFase().equals(faseSeleccionado.getFase())){
						xmlPage.append(objectToXML.getXML(fase));	
					}
					
				}
			xmlPage.append("</faseSeleccionada>");
			
			
			//Se consultan los grupos por fase
			List<Grupo> grupos  = grupoServicio.getGruposPorFase(faseSeleccionado);
			xmlPage.append(objectToXML.getXML(grupos));
			
			//Partidos
			if(grupoSeleccionado!=null && grupoSeleccionado.getGrupo()!=null){
				
				xmlPage.append("<grupoSeleccionado>");
				
					for (Grupo grupo : grupos) {
						if(grupo.getGrupo().equals(grupoSeleccionado.getGrupo())){
							xmlPage.append(objectToXML.getXML(grupo));	
						}
						
					}
				xmlPage.append("</grupoSeleccionado>");
				
				
				//Se consultan los partidos por grupo
				List<Partido> partidos =PartidoServicio.getInstance().getPartidosPorGrupoSinFinalizar(grupoSeleccionado);
				if(partidos!=null && partidos.size()>0){
					
					xmlPage.append(objectToXML.getXML(partidos));
					
				}else{
					
					xmlPage.append("<sinPartidos/>");
					
					
				}
			}else{
				xmlPage.append("<sinPartidos/>");
				
			}
			
		} else{
			xmlPage.append("<sinPartidos/>");
		}
				
		
		
		
		return xmlPage;
	}

	@Override
	public String getNextPage() {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public boolean isAccesoValido(HttpServletRequest arg0) {
		return AutenticacionServicio.getInstance().isAccesoPrivadoValido(arg0);
	}
	

}
